package ScalaStudy.chapter04

object Test_For {
  def main(args: Array[String]): Unit = {

    /////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////   for   /////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////

    //1、范围遍历（包括10）
    for(i <- 1 to 10){               //采用for 对1到10遍历
      println(i)
    }

    //2、范围遍历（不包括10）
    for(i <- 1 until  10){           //采用for 对1到9遍历
      println(i)
    }

    //3、集合遍历
    for (i <- Array(12,34,53)){            //遍历集合，set和list同理
      println(i)
    }

    //4、循环守卫
    for (i <- 1 to 10 if i != 5){      //遍历集合，但有条件
      println(i)
    }

    //5、循环步长
    for (i <- 1 to 10 by 2){          //遍历集合，增加步进，每一次元素加2
      println(i)
    }

    for (i <- 1.0 to 10.0 by 0.5){          //遍历集合，增加浮点步进，每一次元素加0.5
      println(i)
    }

    //6、循环嵌套
    for (i <- 1 to 4; j <- 2 to 8){     //嵌套的简写形式
      println("i = " + i + " j = " + j)
    }

    //7、循环引入变量
    for (i <- 1 to 10; j = 10 - i){           //把i作为j的变量
      println("i = " + i + " j = " + j)
    }


    /////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////  练习   /////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////

//打印输出一个九层妖塔
    for(i <- 1 to 9 ){
      val stars = 2 * i - 1
      val spaces = 9 - i
      println(" " * spaces + "*" * stars)
    }

    /////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////  循环返回值   /////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////

    val a: Unit = for (i <- 1 to 10) {        //不能返回
      println(i)
    }
    println("a:" + a)

    val b = for (i <- 1 to 10) yield i         //返回一个集合类型
    println("b:" + b)







  }
}
